<template>
    <div>
        <div class="mg-content">
             <el-row :gutter="20">
                <el-col :span="6">
                     <el-input  v-model="input"  size="medium" @keyup.enter.native="keyDown($event)" placeholder="请输入类别名称" :maxlength="20"></el-input>
                </el-col>
                <el-col :span="10">
                    <div  class="text-left">
                        <el-button type="primary"  size="medium" class="btn-info"   icon="el-icon-search"  @click="search">搜索</el-button>
                        <el-button type="primary" size="medium" class="btn-warning" style="margin-left: 1px"   icon="el-icon-refresh" @click="cleanSearch">重置</el-button>
                          <!--<el-button type="primary"  class="title-button btn-primary" @click="addShow=true;activityId=''" icon="plus">新建&nbsp;</el-button>-->
                    </div>
                </el-col>
            </el-row>

          <div class="title-buttons">
            <el-button v-hasPermission="'management_materialCategory:create'" class="title-button btn-primary"  size="medium" @click="addShow=true;activityId=''" icon="el-icon-plus">新建&nbsp;</el-button>
          </div>
             <el-row :gutter="20">
                <!--<el-col :span="4">-->
                    <!--<div class="me_title"  >原料分类</div>-->
                    <!--<el-tree :data="treeData"  :props="defaultProps" style="height:400px;overflow-y:auto" :highlight-current="true" :expand-on-click-node="true" :default-expand-all="true" @node-click="handleNodeClick"></el-tree>-->
                <!--</el-col>-->
                <el-col :span="24">
                <el-table
                     v-loading="loading"
                     :data="tableData"
                     :border="true"
                     style="width: 100%">
                    <el-table-column
                       type="index"
                       width="50">
                     </el-table-column>
                    <el-table-column
                            label="编号">
                        <template  slot-scope="scope">
                            <span>{{scope.row.no}}</span>
                        </template>
                    </el-table-column>
                    <el-table-column
                            label="名称">
                        <template  slot-scope="scope">
                            <span>{{scope.row.name}}</span>
                        </template>
                    </el-table-column>
                    <el-table-column
                            label="父级类别">
                        <template  slot-scope="scope">
                            <span v-if="scope.row.parentName">{{scope.row.parentName}}</span>
                          <span v-else>----</span>
                        </template>
                    </el-table-column>
                     <!--<el-table-column-->
                             <!--label="查看" width="70">-->
                         <!--<template  slot-scope="scope">-->
                             <!--<router-link :to="'/materialCategorys/materials/show?id='+scope.row.id">-->
                                 <!--<span class="icon icon-chakanmingxi table-icon"></span>-->
                             <!--</router-link>-->
                         <!--</template>-->
                     <!--</el-table-column>-->
                     <el-table-column
                             label="修改" width="70">
                         <template  slot-scope="scope">
                                <span v-hasPermission="'management_materialCategory:update'" class="icon icon-xiugai-copy table-icon" @click="addShow=true;activityId=scope.row.id"></span>
                         </template>
                     </el-table-column>
                     <el-table-column
                              label="删除" width="70">
                          <template  slot-scope="scope">
                            <span v-hasPermission="'management_materialCategory:destory'" class="icon icon-delete table-icon" @click="handleDelete(scope.$index,scope.$index,scope.row.id)"></span>
                          </template>
                     </el-table-column>
                </el-table>
                </el-col>
            </el-row>
            <br>
            <div class="block">
                <el-row>
                    <el-col :span="24" class="text-right">
                       <el-pagination
                           @size-change="handleSizeChange"
                           @current-change="handleCurrentChange"
                           :current-page="currentPage"
                           :page-sizes="pageSizes"
                           :page-size="pageSize"
                           layout="total, sizes, prev, pager, next, jumper"
                           :total="total">
                       </el-pagination>
                    </el-col>
                </el-row>
            </div>
        </div>
        <model :isShow="addShow" :id="activityId" @close="addClose" @addSuccess="addSuccess"></model>
        <PluginConfirm
                :show="dialogIsShow"
                @chooseSure="chooseSure()"
                @chooseCancel="chooseCancel()"
                @dialogResult="dialogResult">
        </PluginConfirm>
    </div>
</template>
<script>
    //注意路径
    import model from './model.vue'
    export default{
        data(){
            return {
                treeData:[],
                defaultProps: {
                    children: 'children',
                    label:function(data){
                            return "["+data.no+"]"+data.name;
                        }
                },
                loading:false,
                tableData: [],
                pageSizes:window.pageSizes,//所有可选择的条数
                pageSize:window.pageSize,//控制一页显示的条数
                total:10,//总条数
                input:"",
                currentPage:1,
                inputValue:"",
                dialogIsShow:false,
                addShow:false,
                activityId:"",
                dialogIsShow:false,
                curDataRow:null,
                curDataIndex:0,
                selectItmeIndex:"",
                selectItemDetailsIndex:"",
                selectDelId:""

            }
        },
        components: {
           model
        },
        created(){
            window.this = this;
            this.initData();
        },
        methods: {
            handleNodeClick(data) {
                    var id=data.id;
                    var cate="";
                    if(id!=0){
                        cate=id;
                    }else{
                        cate="";
                    }
                    this.loading=true;
                    this.$axios.get("materials/materialCategorys?search.category.id_eq=" + cate +"&page.pn=1&page.size=" + this.pageSize).then((data)=>{
                        if(data.status==200){
                        this.tableData=data.content.content;//TODO
                        this.total=data.content.totalElements
                        this.loading=false
                    }else{
                        this.loading=false
                    }
                })
            },
            initData(){
                this.currentPage=1;
                this.getData();
            },
            keyDown(ev){
                if(ev.keyCode==13) {
                    this.currentPage=1;
                    this.inputValue=this.input;
                    this.getData();
                }
            },
            cleanSearch(){
                this.currentPage=1;
                this.input="";
                this.inputValue=this.input;
                this.getData();
            },
            search(){
                this.currentPage=1;
                this.inputValue=this.input;
                this.getData();
            },
            handleCurrentChange(currentPage){
                this.currentPage=currentPage;
                this.getData();
            },
            getData(){
                // this.loading=true;
                this.$axios.get("materials/materialCategorys?page.pn="+this.currentPage+"&page.size="+this.pageSize+"&search.name_like="+this.inputValue).then((data)=>{
                    this.loading=false;
                    this.tableData=data.content.content;
                    this.total=data.content.totalElements;
                    // if(data.content.treeData){
                    //   this.treeData=data.content.treeData;
                    // }else{
                    //   this.treeData=[];
                    // }

                }).catch(function(err){
                 })
            },
            handleDelete(index,delIndex,id) {
                this.selectItmeIndex=index,
                this.selectItemDetailsIndex=delIndex;
                this.selectDelId=id;
                this.dialogIsShow=true;
            },
             dialogResult(param){
                this.dialogIsShow=param.close;
                if(param.choose==="ok"){
                    //console.log("确定");
                    this.$axios.delete("materials/materialCategorys/"+this.selectDelId).then(data=>{
                        if(data.status==200){
                            this.tableData.splice(this.curDataIndex,1);
                            this.$message({
                                type: 'success',
                                message: '删除成功!'
                            });
                            this.initData();
                        }else{
                            this.$message({
                                type: 'error',
                                message: data.message
                            });
                        }
                    })
                }else if(param.choose==="cancel"){
                    //console.log("取消");
                }else{
                    //console.log("不做处理");
                }
            },

              addSuccess(item){
                this.addShow=false;
                this.currentPage=1;
                this.initData();
              },

            addClose(){
                this.addShow=false;
            },
            handleSizeChange(val){
                this.pageSize=val;
                this.getData();
            },
        }
    }
</script>
<style scoped>
</style>
